/*****************************************************************************/
/*                                                                           */
/*    Domino Operation System Driver Module                                  */
/*                                                                           */
/*    Copyright (C) 2008 Laszlo Arvai                                        */
/*                                                                           */
/*    ------------------------------------------------------------------     */
/*    drvAD420 - AD420 (16-bit D/A converter driver)                         */
/*****************************************************************************/

///////////////////////////////////////////////////////////////////////////////
// Includes
#include <drvAD420.h>
#include "drvIOConfig.h"

///////////////////////////////////////////////////////////////////////////////
// Initialize
void drvAD420Init(void)
{
	InitADLatch();
	InitADClock();
	InitADData();
}

///////////////////////////////////////////////////////////////////////////////
// Set A/D value
void drvAD420SetValue( dosWord in_value )
{
	dosByte i;

	// init pins
	ADLatch(0);
	ADClock(0);
	ADData(0);

	// send 16 bits
	for( i = 0; i<16; i++ )
	{
		// send data bit to data out
		if( (in_value & (1<<15)) == 0 )
			ADData( 0 );
		else
			ADData( 1 );
			
		in_value <<= 1;	
		ADClockDelay();

		// rising edge of clock
		ADClock( 1 );
		ADClockDelay();

		// falling edge of clock
		ADClock( 0 );
	}

	// latch data
	ADLatch(1);
	ADClockDelay();
	ADLatch(0);

}	
